package ar.uba.fi.algo3.control;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

import ar.uba.fi.algo3.modelo.BatallaNaval;

import fiuba.algo3.titiritero.dibujables.SuperficiePanel;
import fiuba.algo3.titiritero.modelo.GameLoop;
import fiuba.algo3.titiritero.modelo.ObservadorDeGameLoop;

public class ControladorFinDeJuego implements ObservadorDeGameLoop {
        
	GameLoop gameLoop;
	BatallaNaval juego;

	public ControladorFinDeJuego(BatallaNaval unJuego, GameLoop unGameLoop) {

		juego = unJuego;
		gameLoop = unGameLoop;
	}

	@Override
	public void notificarCicloFinalizado() {
    
		BufferedImage imagen = null;
		String direccion = null;
		if (juego.todasLasNavesHundidas()) {
        
			direccion="\\src\\ar\\uba\\fi\\algo3\\imagen\\haganado.jpg";    
		}
        
		else if (juego.puntosAcabados()){
        
			direccion="\\src\\ar\\uba\\fi\\algo3\\imagen\\haperdido.jpg";
		}
        
		if (this.juego.todasLasNavesHundidas() || this.juego.puntosAcabados() ) {
			gameLoop.detenerEjecucion();
			try {
				imagen = ImageIO.read(new URL("file:///" + System.getProperty("user.dir") + direccion));
				
			}
			catch (IOException e) {
				e.printStackTrace();
			}
            
			SuperficiePanel superficiePanel = (SuperficiePanel)gameLoop.getSuperficieDeDibujo();
			Graphics grafico = superficiePanel.getBuffer();
			superficiePanel.removeAll();
			superficiePanel.updateUI();
			grafico.drawImage(imagen, 0, 0, null);
		}
	}
}